package com.yoyo.common.core.domain.entity;

import com.yoyo.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.List;

/**
 * @author zyl
 * @Date 2021/8/8 -10:07
 */
@Data
@ToString
public class SysMenu extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 菜单ID
     */
    private Long menuId;

    /**
     * 菜单名称
     */
    @NotBlank(message = "菜单名称不能为空")
    @Size(max = 50, message = "菜单名称不能超过50个字符")
    private String menuName;

    /**
     * 父菜单名称
     */
    private String parentName;

    /**
     * 父菜单ID
     */
    private Long parentId;

    /**
     * 显示顺序
     */
    @NotBlank(message = "显示顺序不能为空")
    private String orderNum;

    /**
     * 菜单Url
     */
    @Size(max = 200, message = "请求地址不能超过200个字符")
    private String url;

    /**
     * 打开方式（menuItem 页签 menuBlank新窗口）
     */
    private String target;

    /**
     * 类型 （M 目录 C 是菜单 F 按钮）
     */
    @NotBlank(message = "菜单类型不能为空")
    private String menuType;

    /**
     * 是否隐藏 （0 显示 1 隐藏）
     */
    private String visible;

    /**
     * 是否刷新 （0 刷新 1不刷新）
     */
    private String isRefresh;

    /**
     * 权限字符串
     */
    private String perms;

    /**
     * 图标
     */
    private String icon;

    private List<SysMenu> children = new ArrayList<>();

}
